public class VertexData {
        private boolean m_visited;
                
        private int m_height;

    	private int m_exceedValue;
        
        
        
        public VertexData(int height, int exceedValue, boolean visited)
    	{
    		m_height = height;
    		m_exceedValue = exceedValue;
    		m_visited = visited;
    	}

    	public VertexData()
    	{
    		this(0,0,false);
    	}
    	
        
        public VertexData(boolean visited){
                this.m_visited = visited;
        }
        
        public void setVisited(boolean visited){
                this.m_visited = visited;
        }
        
        public void setVisited()
        {
        	this.m_visited = true;
        }
        
       
        
        public boolean isVisited(){
                return this.m_visited;
        }
        
        public int getExceedValue() {
                return this.m_exceedValue;
        }
       
    	
    	
    	public int getHeight()
    	{
    		return m_height;
    	}

    	public void setHeight(int height)
    	{
    		m_height = height;
    	}
    	
    	public void setExceedValue(int exceedValue)
    	{
    		m_exceedValue = exceedValue;
    	}
    	
    	public void increaseExceedValue(int exceed)
    	{
    		m_exceedValue += exceed;
    	}
    	
//    	public void decreaseExceedValue(int exceed)
//    	{
//    		m_exceedValue -= exceed;
//    	}
    	
    	public boolean isExceed()
    	{
    		return 	(m_exceedValue != 0);
    	}
    	
    	public void decreaseExceedValue(int value)
    	{
    		if(m_exceedValue < value)
    			m_exceedValue = 0;
    		else
    			m_exceedValue -= value;
    	}
  
    	public void increaseHeight()
    	{
    		m_height += 1;
    	}
}
